home *** CD-ROM | disk | FTP | other *** search
/ LG Super CD / LG Super CD.iso / bitpim / bitpim-0.62-setup.exe / {app} / bitpim.exe / wxPython / tools / dbg.pyo (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2003-11-06  |  5.5 KB  |  154 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.3)
  3.  
  4.  
  5. class Logger:
  6.     
  7.     def __init__(self, name = None):
  8.         import sys
  9.         self.name = name
  10.         self._indent = 0
  11.         self._dbg = 0
  12.         self._suspend = 0
  13.         self._wxLog = 0
  14.         self._outstream = sys.stdout
  15.         self._outstream_stack = []
  16.  
  17.     
  18.     def IsEnabled():
  19.         return self._dbg
  20.  
  21.     
  22.     def IsSuspended():
  23.         return _suspend
  24.  
  25.     
  26.     def log(self, *args, **kwargs):
  27.         if not (self._dbg) and not ('enable' in kwargs.keys()):
  28.             return None
  29.         
  30.         if self._dbg and len(args) and not (self._suspend):
  31.             strs = [ str(arg) for arg in args ]
  32.             output = ' '.join(strs)
  33.             output = ' ' * 3 * self._indent + output
  34.             if self._wxLog:
  35.                 wxLogMessage = wxLogMessage
  36.                 import wxPython.wx
  37.                 wxLogMessage(output)
  38.             else:
  39.                 self._outstream.write(output + '\n')
  40.                 self._outstream.flush()
  41.         
  42.         for kwarg, value in kwargs.items():
  43.             if kwarg == 'indent':
  44.                 self.SetIndent(value)
  45.                 continue
  46.             if kwarg == 'enable':
  47.                 self.SetEnabled(value)
  48.                 continue
  49.             if kwarg == 'suspend':
  50.                 self.SetSuspend(value)
  51.                 continue
  52.             if kwarg == 'wxlog':
  53.                 self.SetWxLog(value)
  54.                 continue
  55.             if kwarg == 'stream':
  56.                 self.SetStream(value)
  57.                 continue
  58.         
  59.  
  60.     dbg = log
  61.     msg = log
  62.     __call__ = log
  63.     
  64.     def SetEnabled(self, value):
  65.         if value:
  66.             old_dbg = self._dbg
  67.             self._dbg = 1
  68.             if not old_dbg:
  69.                 self.dbg('dbg enabled')
  70.             
  71.         elif self._dbg:
  72.             self.dbg('dbg disabled')
  73.             self._dbg = 0
  74.         
  75.  
  76.     
  77.     def SetSuspend(self, value):
  78.         if value:
  79.             self._suspend += 1
  80.         elif self._suspend > 0:
  81.             self._suspend -= 1
  82.         
  83.  
  84.     
  85.     def SetIndent(self, value):
  86.         if value:
  87.             self._indent += 1
  88.         elif self._indent > 0:
  89.             self._indent -= 1
  90.         
  91.  
  92.     
  93.     def SetWxLog(self, value):
  94.         self._wxLog = value
  95.  
  96.     
  97.     def SetStream(self, value):
  98.         if value:
  99.             self._outstream_stack.append(self._outstream)
  100.             self._outstream = value
  101.         elif value is None and len(self._outstream_stack) > 0:
  102.             self._outstream = self._outstream_stack.pop(-1)
  103.         
  104.  
  105.  
  106. if __name__ == '__main__':
  107.     from wxPython.wx import *
  108.     wxLog_SetActiveTarget(wxLogStderr())
  109.     logger = Logger('module')
  110.     dbg = logger.dbg
  111.     dbg(enable = 1)
  112.     logger('test __call__ interface')
  113.     dbg('testing wxLog output to stderr:', wxlog = 1, indent = 1)
  114.     dbg('1,2,3...')
  115.     dbg('testing wxLogNull:')
  116.     devnull = wxLogNull()
  117.     dbg('4,5,6...')
  118.     del devnull
  119.     dbg('(resuming to wxLogStdErr)', '7,8,9...', indent = 0)
  120.     dbg('disabling wxLog output, switching to stderr:')
  121.     dbg(wxlog = 0, stream = sys.stderr)
  122.     dbg(logger._outstream, 'switching back to stdout:')
  123.     dbg(stream = None)
  124.     dbg(logger._outstream)
  125.     
  126.     def foo(str):
  127.         dbg('foo:', indent = 1)
  128.         dbg(str, indent = 0)
  129.  
  130.     foo('testing dbg inside function')
  131.     
  132.     class bar(Logger):
  133.         
  134.         def __init__(self, name):
  135.             Logger.__init__(self, name)
  136.  
  137.         
  138.         def enable(self, value):
  139.             self.dbg(enable = value)
  140.  
  141.         
  142.         def foo(self, str):
  143.             self.dbg('foo:', indent = 1)
  144.             self.dbg(str, indent = 0)
  145.  
  146.  
  147.     f = bar('class mixin')
  148.     f.foo("shouldn't print")
  149.     f.enable(1)
  150.     f.foo('should print')
  151.     dbg('test completed.', enable = 0)
  152.     dbg('(double-checking ;-)')
  153.  
  154.